home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / JAVA Utilities / JProxy 1.1.0 / SAMPLES.JAR / com / jproxy / samples / ejb / test / SessionClient.java < prev    next >
Encoding:
Java Source  |  2003-04-29  |  5.8 KB  |  179 lines

  1. package com.jproxy.samples.ejb.test;
  2.  
  3. /**
  4.  * The class is a client for TestSession EJB example.
  5.  * The request current time from server and prints it.
  6.  * The class may be used as an Applet or stand-alone application.
  7.  */
  8.  
  9. /*
  10. Here are some usage examples.
  11. You have to correct paths for your environment.
  12.  
  13. For HTTPS test
  14.   -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol \
  15.   -Djavax.net.ssl.trustStore=your_keystore \
  16.   -Djavax.net.ssl.trustStorePassword=123456 \
  17.   -Djavax.net.debug=all \
  18.  
  19. For EJB security test add to command line
  20.   -Djava.naming.security.principal=admin \
  21.   -Djava.naming.security.credentials=123 \
  22.  
  23. 1. Any EJB Server with JProxy and EJB security:
  24. %JAVA_HOME%\bin\java -cp samples.jar;proxyclient.jar;j2api.jar \
  25.   -Djava.naming.factory.initial=com.jproxy.proxy.NamingContextFactory \
  26.   -Djava.naming.provider.url=localhost:8080 \
  27.   com.jproxy.samples.ejb.test.SessionClient
  28.  
  29. ...And below you can see how many libraries needed to run the Client without JProxy!
  30.  
  31. 2. JBoss 3.0 without JProxy:
  32. %JAVA_HOME%\bin\java
  33.   -cp samples.jar;%LIB_PATH%/jboss-j2ee.jar;%LIB_PATH%/jboss-client.jar;\
  34.   %LIB_PATH%/jnp-client.jar;%LIB_PATH%/jbosssx-client.jar;\
  35.   %LIB_PATH%/jboss-common-client.jar;%LIB_PATH%/log4j.jar \
  36.   -Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory \
  37.   -Djava.naming.provider.url=localhost \
  38.   com.jproxy.samples.ejb.test.SessionClient
  39.  
  40. 3. Orion without JProxy:
  41. %JAVA_HOME%\bin\java
  42.   -cp samples.jar;proxyclient.jar;j2api.jar;%LIB_PATH%/orion.jar;%LIB_PATH%/jaas.jar;
  43.   %LIB_PATH%/crimson.jar;%LIB_PATH%/jaxp.jar;%LIB_PATH%/jta.jar;%LIB_PATH%/jdbc.jar \
  44.   -Djava.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory \
  45.   -Djava.naming.provider.url=ormi://localhost/proxy \
  46.   com.jproxy.samples.ejb.test.SessionClient
  47. */
  48.  
  49. import javax.naming.*;
  50. import java.applet.*;
  51. import java.util.*;
  52.  
  53. import com.jproxy.proxy.*;
  54. import com.jproxy.samples.interfaces.ITest;
  55.  
  56. public class SessionClient
  57. {
  58.     public String hostUrl = "localhost";
  59.     public ISession session = null;
  60.     public InitialContext context = null;
  61.     public Properties env = new Properties();
  62.     public boolean isInitialized = false;
  63.  
  64.     long time = 0;
  65.  
  66.     //Construct the applet
  67.     public SessionClient()
  68.     {
  69.     }
  70.  
  71.     //Initialize the applet
  72.     public void init()
  73.         throws Exception
  74.     {
  75.         hostUrl = env.getProperty(Context.PROVIDER_URL);
  76.  
  77.         if(hostUrl!=null && hostUrl.toLowerCase().startsWith("https://"))
  78.         {
  79. //            java.security.Provider provider = new com.sun.net.ssl.internal.ssl.Provider();
  80.             java.security.Provider provider = (java.security.Provider)Class.forName("com.sun.net.ssl.internal.ssl.Provider").newInstance();
  81.             java.security.Security.addProvider(provider);
  82. // Uncomment if you want to implement your HostnameVerifier for HTTPS
  83. /*            com.sun.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
  84.                 new com.sun.net.ssl.HostnameVerifier()
  85.                 {
  86.                     public boolean verify(String urlHostname, String certHostname)
  87.                     {
  88.                         System.out.println("####### urlHostname: "+urlHostname+" certHostname: "+certHostname);
  89.                         return urlHostname.equals(certHostname);
  90.                     }
  91.                 }
  92.             );
  93. */
  94.         }
  95.  
  96. // JBoss without JProxy
  97. //            env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
  98. //            env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
  99.  
  100. //    command line:
  101. // java -cp samples.jar;proxyclient.jar;ejb.jar com.jproxy.samples.ejb.test.SessionClient [http | https://]YourServer[:Port]
  102.  
  103. // Orion with JProxy
  104. //            env.put(com.jproxy.proxy.Tunnel.INITIAL_CONTEXT_FACTORY, "com.evermind.server.ApplicationClientInitialContextFactory");
  105. //    or
  106. //            env.put(com.jproxy.proxy.Tunnel.INITIAL_CONTEXT_FACTORY, "com.jproxy.proxy.providers.OrionNamingContextFactory");
  107. //            env.put(com.jproxy.proxy.Tunnel.PROVIDER_URL, "ormi://localhost/proxy");
  108. //            env.put("dedicated.connection", "true");
  109.  
  110. // Orion without JProxy
  111. //            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.ApplicationClientInitialContextFactory");
  112. //    or
  113. //            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.jproxy.proxy.providers.OrionNamingContextFactory");
  114. //            env.put(Context.PROVIDER_URL, "ormi://localhost/proxy");
  115. //    command line:
  116. // java -cp jdbc.jar;jta.jar;crimson.jar;jaxp.jar;parser.jar;orion.jar;jaas.jar;samples.jar;proxyclient.jar;ejb.jar com.jproxy.samples.ejb.test.SessionClient ormi://YourServer/proxy
  117.  
  118. // For security test
  119. //            env.put(Context.SECURITY_PRINCIPAL, "admin");
  120. //            env.put(Context.SECURITY_CREDENTIALS, "123");
  121.  
  122.             context = new InitialContext(env);
  123.  
  124.             ISessionHome sessionHome = (ISessionHome)context.lookup("TestSessionBean");
  125.  
  126.             context.close();
  127. //    or
  128. //            ISessionHome sessionHome = (ISessionHome)context.lookup("java:comp/env/TestSessionBean");
  129.             session = sessionHome.create();
  130.             isInitialized = true;
  131.     }
  132.  
  133.  
  134.     public void test()
  135.         throws Exception
  136.     {
  137.             time = session.getServerTime();
  138.  
  139. // uncomment to execute simple performance test
  140. //            long t = System.currentTimeMillis();
  141. //            for(int i=0; i<1000; i++)
  142. //                time = session.getServerTime();
  143. //            System.out.println("Execution time: "+(System.currentTimeMillis()-t)/1000.0+" seconds");
  144.  
  145.             System.out.println("\r\n<<<<<< Server Time: "+(new Date(time))+" >>>>>\r\n");
  146.     }
  147.  
  148.     public void destroy()
  149.     {
  150.         isInitialized = false;
  151.         try{
  152.             session.remove();
  153.         }catch(Exception e){
  154. //            e.printStackTrace();
  155.         }
  156.     }
  157.  
  158.  
  159.     public static void main(String[] args)
  160.     {
  161.         SessionClient client = new SessionClient();
  162.         client.env = System.getProperties();
  163.  
  164.         if(client.env.getProperty(Context.PROVIDER_URL)==null)
  165.             client.env.setProperty(Context.PROVIDER_URL, "localhost");
  166.  
  167.         if(client.env.getProperty(Context.INITIAL_CONTEXT_FACTORY)==null)
  168.             client.env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.jproxy.proxy.NamingContextFactory");
  169.  
  170.         try{
  171.             client.init();
  172.             client.test();
  173.             client.destroy();
  174.         }
  175.         catch(Exception e){
  176.             e.printStackTrace();
  177.         }
  178.     }
  179. }